Electronic television program guide schedule system and method

ABSTRACT

An electronic program schedule system which includes a receiver for receiving broadcast, satellite or cablecast television programs for a plurality of television channels and a tuner for tuning a television receiver to a selected one of the plurality of channels. A data processor receives and stores in a memory television program schedule information for a plurality of television programs to appear on the plurality of television channels. A user control apparatus, such as a remote controller, is utilized by a viewer to choose user control commands and transmit signals in response to the data processor which receives the signals in response to user control commands. A television receiver is used to display the television programs and television program schedule information. A video display generator receives video control commands from the data processor and program schedule information from the memory and displays a portion of the program schedule information in overlaying relationship with a television program appearing on a television channel in at least one mode of operation of the television programming guide. The data processor controls the video display generator with video control commands, issued in response to the user control commands, to display program schedule information for any chosen one of the plurality of television programs in overlaying relationship with at least one television program then appearing on any chosen one of the plurality of channels on the television receiver.

This application is a continuation of application Ser. No. 08/247,101filed on May 20, 1994 now U.S. Pat. No. 5,781,246.

BACKGROUND OF THE INVENTION

This invention relates to an electronic program schedule system, whichprovides a user with schedule information for broadcast or cablecastprograms viewed by the user on a television receiver. More particularly,it relates to an improved electronic program guide that provides theuser with a more powerful and convenient operating environment, while,at the same time, increasing the efficiency of navigation by the userthrough the guide.

Electronic program guides for television systems are known in the art.For example, one prior system used an electronic character generator todisplay textual schedule information on the full screen of a televisionreceiver. Other prior systems presented electronically stored programschedule information to a user for viewing while allowing the user toselect display formats. Still other systems employed a data processor toinput user-selection criteria, then stored only the program scheduleinformation meeting these criteria, and subsequently used the storedinformation to automatically tune a programmable tuner or activate arecording device at the time of broadcast of the selected televisionprograms. Such prior systems are generally discussed in “Stay Tuned forSmart TV,” published in the November 1990 issue of Popular Science.

Collectively, the prior electronic program systems may be difficult toimplement and cumbersrome to use. They also fail to provide viewingcapabilities that address in a more realistic manner the viewing habitsof the users of these electronic program systems. Moreover, many ofthese systems are complex in their design and are expensive toimplement. Ease of use and economy are primary concerns of televisionprogram distributors and viewers as they contemplate dramatic increasesin the number and nature of program networks and other television-basedservices. And, as the number of television channels available to a userincreases dramatically with the advent of new satellite and cable-basedtechnologies, the utility of these prior systems substantiallydiminishes.

These prior-art systems also fail to provide the user with sufficientinformation, for example pricing and the like, about pay-per-viewevents, premium services or other packaged programming to which the userdoes not subscribe, nor do they provide the user with the capability toautomatically purchase such programming on demand or impulse. Moreover,these prior-art systems are deficient in that they fail to provide anefficient and automatic method of updating or replacing the applicationsoftware programs that implement the electronic guide at the user sites,relying instead on manual or other cumbersome forms of revision orreplacement or hardware-based systems that can not be updated withoutphysical replacement of integrated circuits and/or other parts.

Nor do these prior electronic guide systems have the capability oflinking the user to other applications or information systems which arenot part of the electronic program guide application or data.

Nor do these prior electronic guide systems provide video promotion oftelevision programs and services that are functionally linked andvisually displayed in an integrated fashion. Program promotion is animportant element of the effective marketing of television programming.The promotion of pay-per-view pay (i.e., “a la carte”) programs andother unregulated program services is particularly important to cabletelevision operators in the wake of re-regulation by the federalgovernment. The current method of promoting such programming using videois through dedicated “barker” channels that use full screen continuoustrailers (i.e., previews) which may or may not be accompanied by pricesand ordering information. Recently, such promotional videos have beenshown in split screens where part of the screen shows general scheduleinformation for a time period roughly corresponding to the time periodduring which the general program being promoted is shown. Accordingly,there exists a need for an electronic program guide which can provideimproved display and linking of video promotions with program scheduleinformation and order processing functions.

The prior electronic program guides also fail to provide the user with asimple and efficient method of controlling access to individual channelsand individual programs. The amount of adult situations involving sexand violence has steadily increased during the last 40 years. The issueof how this affects children or other viewers has gained nationalattention. Providing a parent with the ability to lock-out a channel isa well known and widespread feature of certain television receivers andcable converter boxes. Despite this availability, the feature is seldomused by parents. The main impediments to its effective use are thecumbersome ways in which it is generally implemented, as well as therequirement that entire channels be blocked in order to block access toany objectional programming. A channel-oriented parental lock is unfairto other programmers on the blocked channel—who, for example, offeradult-oriented programming in the evening and youth-oriented programmingthe following morning—and inconvenient for viewers who want access tosuch programs. Thus, there is a particular need for a system whichprovides password control to individual programs and channels using aflexible and uncomplicated on-screen user interface.

The prior electronic program guides are also deficient in that they donot provide the user with the ability to view on demand current billingstatus and, thus, a need exists for a system which can provide the userwith current billing information on the user's demand.

An additional problem with prior program guides is that when displayingschedule information in grid format, i.e., columns representing timeslots and rows representing channels, program titles generally arewidth-wise truncated to fit into the cells of the grid. The width of agrid cell varies with the duration of the program. Since a 30 minuteprogram is allotted only a small amount of space for the program titleand description, titles and/or descriptions for half and even full hourprograms often must be truncated in order to fit into the allottedspace. Some systems simply cut off the description of a program withoutabbreviating it in any way, such that the user is unable to determinethe subject matter of the program. For example, a recent televisionprogram display included the following text in a grid cell: “Baseball:Yankees v.” Although some systems partially alleviate this problem byproviding two lines of text in each grid cell, this solution is notideal because program descriptions may still be truncated.

A similar problem arises as the time slots change, either automaticallyor in response to a user control command. Typically, 90 minutes ofschedule information is displayed at one time and the 90 minute windowis shiftable in 30-minute increments. In the case where a 30 minuteshift causes a 30 minute size grid cell to display, e.g., a two-hourmovie, it is likely that the full title of the movie will not fit intothe cell. Truncation of the title is thus required in this situation aswell. In this case, while two lines of text may be desirable to fit thetitle in the 30 minute cell, the 60 and 90 minute cells may require onlyone line of text to display the title.

The prior electronic program guides also lack a method for creating aviewing itinerary electronically while still viewing a program currentlyappearing on the television receiver. Moreover, these prior programguides leave much guess work for the user as he navigates through asequence of channels. When skimming through channels to ascertain theprogram then being displayed on any channel, commonly known as “channelsurfing,” the user needs to guess which program is currently being airedfrom the video encountered as the user surfs through the channels. Sincemuch—in some cases, up to 30%—of the programming appearing on any givenchannel at any given time is advertising or other commercialprogramming, the user is not provided with any clues as to what programis appearing on a selected channel at a given time and must thereforewait until the advertisement or commercial is over before ascertainingthe program then appearing on the selected channel. Thus a need existsfor a program guide which displays current program schedule informationfor each channel as the user surfs through the available channels.

Accordingly, there is a need in the art for a simplified electronicprogram schedule system that may be more easily implemented, and whichis appealing and efficient in operation. There is also a need to providethe user with an electronic program schedule system that displays bothbroadcast programs and electronic schedule information in a manner notpreviously available with other electronic program schedule systems,particularly those using a remote controller.

For example, there is a particular need for a flexible program schedulesystem that allows a user to view selected broadcast programs on aportion of the screen of the television receiver while simultaneouslyviewing program schedule information for other channels and/or serviceson another portion of the screen. There is also a need for such aprogram schedule system that permits the user to select from a pluralityof selectable display formats for viewing the program scheduleinformation. It is also preferred to have a system that indicates to theuser those keys on the remote controller that are active in anyparticular mode of operation. There also exists a need for such a systemthat will give a user the capability to set a programmable reminder forviewing a program scheduled to air at a future time.

There is also a need for an electronic guide system providing the userwith comprehensive information about pay-per-view events, premiumservices or other packaged programming to which the user does notordinarily subscribe, and which provides the user with the capability toautomatically purchase such programming on demand or impulse. There isalso a need for an electronic guide system providing a reliable andefficient method of updating or replacing the application software thatimplements the electronic guide at the user sites.

There also exists a need for an electronic program guide that operatesas a shell or window to provide the user with the capability to accessother applications or information systems that are not part of theelectronic program guide application or data.

SUMMARY OF THE INVENTION

It is accordingly an object of the present invention to provide a systemthat will allow the user to view a broadcast program while, at the sametime, interactively viewing program schedule information for otherprograms.

It is another object of the present invention to provide the user withthe ability to select from among a plurality of display formats for theprogram schedule information.

It is yet another object of the present invention to indicate to theuser of the program schedule system those keys on the remote controlleractive in the particular mode of operation of the system at the time ofuse.

It is a still further object of the present invention to provide theuser of the electronic program schedule system with the capability ofsetting programmable reminder messages for any future program.

It is yet a further object of this invention to provide the system userwith comprehensive information about pay-per-view events, premiumservices or other packaged programming to which the user does notsubscribe and the capability to automatically purchase such programmingon demand or impulse.

It is another object of the present invention to provide an electronicguide system that provides a reliable and efficient method of updatingor replacing the application software programs that implement theelectronic guide at the user sites.

It is still another object of the electronic program guide to operate asa shell or window to provide the user with the capability to accessother applications or information systems which are not part of theelectronic program guide application or data.

It is yet another object of the electronic program guide to provide asystem whereby video promotion of television programs and services arefunctionally linked and visually displayed in an integrated fashion tofacilitate the marketing and sale of such programs and services.

It is still a further object of the present invention to providepassword control for access to individual programs, as well as channels,using a protected interactive flexible and uncomplicated on-screeninterface.

Another object of the present invention is to provide the user withcurrent programming information for all programs as the user surfsthrough the available channels.

It is yet a further object of the present invention to provide a systemin which the user can access his current billing information on demand.

It is another object of the present invention to provide a system whichoverlays television program listings against varying background views.

It is yet another object of the present invention to provide an improveddisplay of text in the grid cells comprising a page of televisionprogram listings.

These and other objects of the invention are achieved by an electronicprogram schedule system which includes a receiver for receivingbroadcast, satellite or cablecast television programs for a plurality oftelevision channels and a tuner for tuning a television receiver to aselected one of the plurality of channels. A data processor receives andstores in a memory television program schedule information for aplurality of television programs to appear on the plurality oftelevision channels. A user control apparatus, such as a remotecontroller, is utilized by a viewer to choose user control commands andtransmit signals in response to the data processor which receives thesignals in response to user control commands. A television receiver isused to display the television programs and television program scheduleand other information. A video display generator receives video controlcommands from the data processor and program schedule information fromthe memory and displays a portion of the program schedule information inoverlaying relationship with a television program appearing on atelevision channel in at least one mode of operation of the televisionprogramming guide. The data processor controls the video displaygenerator with video control commands, issued in response to the usercontrol commands, to display program schedule information for any chosenone of the plurality of television programs in overlaying relationshipwith at least one television program then appearing on any chosen one ofthe plurality of channels on the television receiver.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing various components of the preferredembodiment of the invention herein.

FIG. 2 is a block diagram showing the combination of program andschedule information by the video overlay device utilized in thepreferred embodiment of the invention.

FIG. 3 depicts a remote controller that can be used in connection withthe preferred embodiment of the electronic program guide system of thepresent application.

FIG. 4 depicts an alternative embodiment of the remote controller shownin FIG. 3.

FIG. 5 shows an overlay appearing on a television screen in one mode ofoperation of the preferred embodiment of the present invention.

FIG. 6 is a menu that appears on a television screen in a MENU mode ofoperation of the preferred embodiment of the present invention.

FIG. 6A is yet another menu that appears on a television screen in aMENU mode of operation of the preferred embodiment of the presentinvention.

FIG. 7 depicts a Viewer Preference Menu that appears on a televisionscreen in one aspect of the preferred embodiment of the presentinvention.

FIG. 8 shows a Preferred Channel selection submenu.

FIG. 9 shows an impulse ordering menu that appears on a televisionscreen in one aspect of the preferred embodiment of the presentinvention.

FIG. 10 shows a Premium Services submenu that appears in one mode ofoperation of the preferred embodiment of the present invention.

FIG. 11 shows a graphic overlay appearing on a television screen in aBROWSE mode of operation of the preferred embodiment of the presentinvention.

FIG. 12 shows a graphic overlay appearing on a television screen in aBROWSE mode of operation of the preferred embodiment of the presentinvention having different information from that shown in FIG. 11.

FIG. 12A shows a graphic overlay appearing on a television screen in aBROWSE mode of operation in the present invention displaying scheduleinformation for a time and channel other than that shown in FIG. 11.

FIG. 13 shows a graphic overlay appearing in a REMINDER mode ofoperation of the preferred embodiment of the present invention.

FIG. 14 shows yet another graphic overlay appearing in a REMINDER modeof operation of the preferred embodiment of the present invention.

FIG. 15 is yet another menu that appears on a television screen in aMENU mode of operation of the preferred embodiment of the presentinvention.

FIG. 16 is yet another menu that appears on a television screen in aMENU mode of operation of the preferred embodiment of the presentinvention.

FIG. 17 is yet another menu that appears on a television screen in aMENU mode of operation of the preferred embodiment of the presentinvention.

FIG. 18 shows a grid listing of schedule information displayed in an AllListings mode of operation of the preferred embodiment of the presentinvention.

FIG. 19 shows schedule information displayed in a Listings By Categorymode of operation of the preferred embodiment of the present invention.

FIG. 20 shows schedule information displayed in a Listings By Channelmode of operation of the preferred embodiment of the present invention.

FIG. 21 shows information displayed in response to a user's request forsupplemental programming information.

FIG. 22 shows programming, ordering and video promotional informationdisplayed in a Pay-Per-View mode of operation of the preferredembodiment of the present invention.

FIG. 23 shows an ordering submenu used in conjunction with the mode ofoperation shown in FIG. 22.

FIG. 24 shows yet another ordering submenu used in conjunction with themode of operation shown in FIG. 22.

FIG. 24A shows yet another ordering submenu used in conjunction with themode of operation shown in FIG. 22.

FIG. 25 shows another grid listing of schedule information displayed inan All Listings mode of operation of the present invention.

FIG. 26 shows a Premium Services submenu that appears in one mode ofoperation of the preferred embodiment of the present invention.

FIG. 27 shows a Messages menu that appears in one mode of operation ofthe preferred embodiment of the present invention.

FIG. 28 shows exemplary messages used in connection with the menu ofFIG. 27.

FIG. 28A is an alternative message menu.

FIG. 29 shows billing information used in connection with the menu ofFIG. 27.

FIG. 30 shows a Key Lock Access menu that appears during one mode ofoperation of the preferred embodiment of the present invention.

FIG. 31 shows a menu appearing in connection with an InteractiveTelevision mode of operation of the preferred embodiment of the presentinvention.

FIG. 32 shows information that appears in a Quote Watch menu inconnection with the Interactive Television mode of operation shown inFIG. 31.

FIG. 33 shows other information that appears in connection with theInteractive Television mode of operation shown in FIG. 31.

FIG. 34 is a menu showing information that appears in a news display inthe Interactive Television mode of operation of the preferred embodimentof the present invention.

FIG. 35 is a menu showing information that appears in a sports displayin the Interactive Television mode of operation of the preferredembodiment of the present invention.

FIGS. 36A-D collectively form a flow chart showing the operation logicrequired for implementation of a computer program for the electronicprogram guide.

FIG. 37 is a menu showing a Locator screen for locating channel numbersand defining favorite channel lists.

FIG. 38 is an alternative menu that can be used in a MENU mode ofoperation of the electronic program guide.

FIGS. 38A and 38B show, respectively, an alternative main menu screenand a listing-by-time screen accessible from the alternative main menu.

FIG. 39 is a Lockout menu that alternatively can be used for permittingor prohibiting access to certain programs.

FIG. 40 is a Setup menu that can be used to set text location and apurchase code for premium and pay-per-view programming.

FIG. 40A shows an exemplary menu for inputting a lockout code.

FIGS. 40B through 40E show, respectively, exemplary menus for entering,confirming, clearing or changing a purchase code.

FIG. 41 is a Lockout Verify menu that is used in connection with theLockout menu of FIG. 39.

FIG. 42 is a flow chart showing the operation of the preferredembodiment of the textfit system of the invention herein.

FIGS. 43A and 43B show two representative background views that may beused in connection with the display of program schedule information.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT System Configuration

FIG. 1 is a block diagram showing various components of the electronicprogram schedule system generally designated as 10. Physically, thesesystem components can be located in a user's set-top cable converter boxor other signal reception or processing device, such as a satellitereceiver. Alternatively, the components can be mounted in a separatehousing, or included as part of a television receiver, VCR, personalcomputer, or multimedia player; or reside as a distributed applicationin a broadband network architecture.

An input signal 11 is connected to a receiver 12, which receives atransmitted data stream from a data provider. The data stream maycontain, for example, information about programs or services availablein a particular market, geographical or otherwise. The input signal 11can originate, for example, as part of a standard broadcast, cablecastor satellite transmission, or other form of data transmission. The dataprovider is a program information provider, the satellite uplinkmanager, a local cable operator, or a combination of these sources, andthe data stream contains program schedule information for all televisionprograms and other services available in the operator's geographicalmarket.

The data stream may be modulated and then transmitted on the cable linein any number of ways, including as part of a dedicated channeltransmission operating at a frequency of, for example, 75 MHz. Those ofskill in the art will understand that numerous other transmissionschemes can be used to transmit the data stream, such as embedding it inthe vertical blanking interval of a program broadcast signal. As will bediscussed in greater detail below, according to the present invention,the transmitted data stream may additionally contain applicationsoftware for implementing or updating the electronic program guide atthe user site.

The transmitted program schedule data or application software isreceived by the receiver 12 on signal input line 11. The received signalis passed from the receiver to a data demodulator 13, such as a QPSKdemodulator or a GI Info-Cipher 1000R, which demodulates thetransmission and passes it to a buffer 15.

A microcontroller 16, such as a M68000EC, receives data passed to thebuffer 15. Bootstrap operating software, which may be used for capturingelectronic program guide application software updates, is stored in aread only memory (ROM) 17. The microcontroller 16 uses the receivedprogram schedule information to build a database by storing the data inappropriately organized records in dynamic random access memory (DRAM)18. The stored schedule information can be updated on a periodic basis,such as hourly, daily or weekly, or at any time when changes inscheduling or other factors warrant an update. The system also includesa system clock 19.

Alternatively, the program schedule information could be supplied in aROM, disk or other non-volatile memory, or it could be downloaded to astorage disk or other data storage device. The invention herein is notdirected to the particular method of transmission or reception of theschedule information.

If the microcontroller 16 recognizes the received data as applicationsoftware which controls the program schedule system, as opposed toprogram schedule information, it stores it in non-volatile memory, suchas an electrically erasable programmable ROM (EEPROM) 20 orbattery-backed static RAM (SRAM). This configuration allows revised orreplacement versions of the application software to be downloadeddirectly from the software developer to the user site through the cableor other transmission system.

In the case where an EEPROM is utilized, revised or replacement versionsof the application software downloaded from the developer are firststored in DRAM 18 by the microcontroller 16, under direction of thedownloading operating software stored in the ROM 17. The storedapplication software can then be checked for accuracy by, for example, achecksum analysis or other verification routine.

After the accuracy of the application software has been verified, themicrocontroller 16 initiates a routine to re-program the EEPROM 20,where the application software is permanently stored. Themicrocontroller 16 will issue proper control commands to a reprogramcircuit 21, which is adapted to supply the proper program voltage andlogic control signals 22 required to erase and write to the EEPROM. Itsupplies this program voltage, Vprog, as well as any other requiredcontrol signals, such as read or write enable, to the EEPROM 20 uponcommand from the microcontroller 16. After the EEPROM 20 has beenelectrically erased, the microcontroller 16 initiates transfer of thenew application software from the DRAM 18 to the EEPROM 20 for storing.

When a battery-backed SRAM is utilized as nonvolatile memory, themicrocontroller stores the revised or replacement version of theapplication software downloaded from the developer directly in the SRAM,again under direction of the downloading operating software stored inthe ROM. The stored application software can then be checked foraccuracy by, for example, a checksum analysis or other verificationroutine.

When power is first applied to the system 10, the bootstrap operatingsoftware verifies that the program guide application software isresident in memory. If it is not resident, the bootstrap operatingsoftware waits for a download of the software. Once the applicationsoftware is resident, the microcontroller 16 executes the applicationprogram software from a dedicated portion of the DRAM 18. Alternatively,the application software can be executed directly from the non-volatilememory 20. Under control of the program guide application software, themicrocontroller 16 first verifies that the program schedule informationis resident in DRAM 18. If it is not resident, the microcontroller waitsfor a download of the program schedule information, as discussed above.Alternatively, if the application program is resident in memory, but thedatabase records containing the program schedule information data arenot yet available, the application software can be configured to carryout other tasks, such as allowing the user to carry out functions notrequiring the program schedule information data, as well as displayingan appropriate message indicating the database data is not yetavailable.

When the schedule system is operating, as discussed in greater detailhereinbelow, the microcontroller 16 takes the program scheduleinformation stored in the DRAM 18 and, in conjunction with otherdownloaded data types such as stored bit maps for the screenconfiguration and the graphic symbol or logo displays stored innon-volatile memory 20 or, alternatively, in DRAM 18, supplies it to avideo display generator (VDG) 23, which in the present embodiment may bea commercially available VGA-type graphics card, such as a Rocgen cardmanufactured by Roctec. The VDG includes a standard RGB video generator24, which takes the digital program schedule information sent by themicrocontroller 16 and converts it to an RGB format in accordance withthe bit map for the particular screen display then being presented tothe user on the television receiver 27. The configuration of each screenis shown and discussed in greater detail in the System Operation sectionbelow.

The VDG also includes a Video Overlay Device 25, which accepts the RGBvideo input, as well as an input from conventional television tuner 28,such as a conventional tuner manufactured by General Instrument or aJerrold DPBB tuner, which supplies a program signal in standard NTSCvideo format. The overlay device 25 converts and combines the RGB signalwith the signal from the tuner 28, and produces a composite NTSC outputsignal containing both the program signal and the program scheduleinformation, as shown in FIG. 2. This composite video signal is suppliedto a modulator 26, shown in FIG. 1, which can be a modulator such asavailable from Radio Shack, and then to the television receiver 27,which the user keeps tuned to the modulated channel, for example,channel 3 or 4. The composite video signal can also be supplied directlyto the television receiver 27 or other receiving device from the VDGthrough a video port 25A on the VDG.

The system components identified in connection with FIG. 1 can all beimplemented in a preferred platform by, for example, an IBM personalcomputer equipped with a transmission link and a video graphics card,such as those manufactured by Roctec. Other platforms, such as a cableconverter box equipped with a microprocessor and memory, or a broadbandnetwork also could be used. Examples of the particular components are asfollows: Microcontroller—Motorola part no. MC68331-16; ROM—TexasInstruments part no. TMS27PC512; DRAM—Texas Instruments part no. TM4256;EEPROM—Intel part no. 28F001BX-T. In any event, those of skill in theart will appreciate that the particular details of the hardwarecomponents and data storage are a function of the particularimplementation of the system, and are not the subject of the presentinvention.

As discussed in detail below, the user may navigate through the programschedule system with a remote controller, such as that shown in FIG. 3,which operates on conventional principles of remote controltransmitter-receiver logic, such as by infrared or other signalling, orother suitable user interface. The remote controller 31 communicateswith the microcontroller 16 through the remote controller receiver 29,shown in FIG. 1, which can be a Silent Partner IR receiver and whichreceives signals transmitted by the remote controller 31 and suppliesthe microcontroller 16 with a corresponding digital signal indicatingthe key depressed by the user.

A remote controller suitable for the present invention, such as shown inFIG. 3, which can be a remote controller manufactured by UniversalElectronics or Presentation Electronics' Silent Partner, may include apower switch 32, volume 33 and mute 34 controls, an ENTER key 35, 0-9digit keys 36, four direction arrow keys 37A and 37B, a MODE key 38 andan information key 39 that is designated with a lower case “i.” Thepower 32, volume 33 and mute 34 keys operate in the same manner asconventional remote controllers typically used with present-daytelevision receivers. The numeric digit keys 36 also function in muchthe same manner as conventional remote controllers. A brief descriptionof the remaining keys follows.

The MODE key 38 takes the user through various layers of the electronicprogram schedule system 10 and generally allows the user to return to aprevious screen when he is in a submenu. The up/down direction arrowkeys 37A allow a user to navigate through the different TV programchannels when the program schedule system is in a FLIP or BROWSE mode,as will be fully described below, and also allow the user to navigatethrough highlighted bars displayed on the TV screen when in a MENU mode.The left/right direction arrow keys 37B allow the user to navigatethrough selected time periods when the program schedule system is in theBROWSE mode, as will also be described below. They further allow theuser to navigate across subject-matter categories while in the“Categories” submenu of the MENU mode, as well as to navigate acrosstime periods when the program schedule system is in a pay-per-viewordering mode and, in general, navigate in left or right directions toselect various icons and other objects. The information, or “i,” key 39allows the user to view supplemental program and other informationduring the various modes of the program schedule system. The ENTER 35key fulfills and inputs a command once the user has made a selectionfrom the remote controller keys. The function and operation of thesekeys will be made more apparent in the detailed discussion of the FLIP,BROWSE and MENU modes below.

A second embodiment of the remote controller 40 is shown in FIG. 4. Thisembodiment of the remote controller also includes a power key 41,numeric digit keys 42, direction arrow keys 43A and 43B, information key48, ENTER or SELECT or “OK” key 44, volume control 45, lockout key 45A,mute keys 46 and help key 48A. It also includes pound sign and starkeys.

This embodiment of the remote controller further includes a number oficon keys 47A and 47B, which correspond to different submenus or modesof the program schedule system. The icons 47A and 47B may also bedisplayed on the TV screen when the program schedule system isoperating. The icon keys essentially replace the MODE key 38 used in theembodiment of the remote controller shown in FIG. 3. Using these keys,the user can move from one mode to another simply by depressing the iconkey corresponding to the desired mode of operation of the programschedule system. In the embodiment of FIG. 4, the icons 47A and 47B areshown as graphic symbols situated directly above a correspondingcolor-coded key. Alternatively, the color-coded keys could be eliminatedand keys could be formed in the image of the icon itself.

The embodiment of the remote controller shown in FIG. 4 also includesthree color-coded viewer preference or favorite channel keys, 48A, 48Band 48C that are situated directly above the icon keys. Each of thesekeys indicates to the program schedule system a distinct user-created“Channel Preference” or “Favorite Channel” list, which is a listing of aspecific subset of channels for a particular user, arranged in thesequential order that the user wishes to view during operation of theprogram schedule system. The creation of the Channel Preference orFavorite Channel list is discussed in the following section. Thus, thesystem provides for at least three individual channel subsets for threeindividual users.

The remote controller of FIG. 4 also may be equipped with a “HELP” key48A, which, when depressed, causes the microcontroller 16 to retrievepreviously stored instruction messages from memory and cause them to bedisplayed on the television receiver 27. These messages offer help tothe user in the form of instructions that guide the user through theoperation of the various operating modes of the electronic televisionprogram guide. They may be text messages, or instructional video images,or audio programs, depending on the storage capacity of the system, orany combination of these. Moreover, these help messages may be createdso that they are context-sensitive, i.e., the messages displayed dependentirely upon the precise point in the operation of the electronicprogram guide that the user depresses the help key 48A. For example,information could be supplied for operation of the remote controller,for operating the FLIP or BROWSE mode (discussed below), or any othermode of operation of the guide, for impulse ordering, for setting alockout, etc. In order to accomplish this, each point of operation ofthe guide could be coded so that the microprocessor could track thecurrent operating point, for example, by temporarily storing the codereflecting the present operating point as the user operated the guide.When the user pressed the help key 48A, the microcontroller 16 wouldretrieve an appropriate set of messages based on the presently storedoperating point code. Additionally, the i key 39 could be used to carryout the function of the help key.

Additionally, each of the functions of the remote controllers can alsobe integrated into a keypad on the user's cable box or other hardware.

System Operation

In operation, the electronic program schedule system of the presentinvention functions as follows.

FLIP Mode

When the user is viewing a particular program channel on the televisionreceiver, the program schedule system defaults to a FLIP mode, shown inFIG. 5. In this mode, a graphic overlay 51 containing programminginformation for the channel currently tuned on the tuner is superimposedin overlaying relationship with a received program signal 55 on thescreen of the television receiver 27 whenever the viewer changes theprogram channel, for example, by using the up/down direction arrows onthe remote controller. The video overlay device 25, such as shown inFIG. 1, combines the computer-generated RGB video-graphic overlayinformation with the NTSC-format program signal from the tuner 28, andsupplies an NTSC-format output signal, which includes the program signalfrom the tuner and the program schedule overlay information for viewingon the television receiver 27.

The programming information contained in the graphic overlay 51 issupplied to the RGB video generator by the microcontroller. In FLIPmode, the microcontroller first searches the program schedule databasein, for example, the DRAM 18 to retrieve the programming information forthe currently tuned channel 52 corresponding to the current time; i.e.,the time at which the user just turned on the television receiver forviewing. The microcontroller 16 then supplies the current channel andprogram information to the RGB video generator 24 which converts thedigital data information to RGB format and supplies it to the videooverlay device 25.

In normal operation, the microcontroller 16 defaults to displaying allchannels offered by the cable company prioritized by numeric order,which is determined by the broadcast channel position in the radiospectrum or the marketing judgments of local cable operators. Using a“Channel Preference” submenu, or an alternative “Locator” screen, bothof which are discussed below, the user can revise the content and/orsequential order of the channels presented to the television receiver27.

In general, if the user does not issue a change-channel instruction, orother command, from the remote controller 40 within a predetermined timeinterval while in the FLIP mode, the microcontroller 16 instructs theVDG 23 to remove the graphic overlay 51 from the television receiver,thus presenting only a program signal 55 to the television receiver 27for viewing. The duration of the predetermined time interval is suchthat it allows the user sufficient time to read the programminginformation contained in the overlay. The duration of the predeterminedtime interval during which the graphic 51 overlay appears is stored in alocation in non-volatile memory 20 addressable by the microcontroller16. The user can change the duration of the time interval, by firstentering a Viewer Preference mode, and then selecting an “overlayinterval” entry. The microcontroller 16 then causes a user prompt to bedisplayed on the screen which, for example, asks the user to select anappropriate time period for displaying in the graphic overlay on thescreen. Using the numeric keys, the user can input an appropriateresponse, for example, a period between 5 and 60 seconds, and thendepress ENTER. The new interval period is then read and stored by themicrocontroller 16 in the overlay time interval location in memory.

If the user issues a change-channel command from the remote controller40 before or after the predetermined overlay period has elapsed, eitherby using the up/down direction arrows 43A, or by entering a desiredchannel number using the numeric keys 42 and then depressing the ENTERkey 44, the microcontroller 16 will cause the tuner 28 to tune to thedesired channel—either the channel immediately preceding or followingthe current channel when the up or down arrow 43A is used or thespecific channel entered on the numeric key pad by the user—and willalso search for and immediately cause to be displayed the currentprogram information for that channel. Thus, as the user flips throughthe channels, the program schedule information for any selected channelautomatically appears in the graphic overlay 51 while the actual program55 appearing on the selected channel at the particular time occupies theremainder of the screen.

The system can also be configured to issue an error message, such as anaudible beep or displayed text indicating an invalid key stroke, if theuser depresses either the left or right direction arrow keys while inthe FLIP mode.

BROWSE Mode

To initiate the BROWSE mode, the user depresses the MODE switch oncewhile in the FLIP mode when using the first embodiment of the remotecontroller 31 shown in FIG. 3. Utilizing the second embodiment of theremote controller 40 shown in FIG. 4, the user would depress the buttonbelow the BROWSE icon 47A.

In the BROWSE mode, the user is provided with the ability to scanthrough program schedule information for any channel, including, but notlimited to, the channel being viewed, while at the same time continuingto view the TV program previously selected. As shown in FIG. 11, in thismode the graphic overlay information that appears in the FLIP mode isreplaced with programming information for the channel being browsed,which may or may not be the channel currently being viewed by the user.After the user issues the command from the remote controller 40 to enterthe BROWSE mode, a graphic overlay 111 is generated, as in the FLIPmode, with program schedule information for the currently tuned channel112 and a textual BROWSE indicator 113 to remind the user of thecurrently active mode, as shown in FIG. 11.

If the user depresses either the up or down direction arrow on theremote controller 40 while in the BROWSE mode, program scheduleinformation for either the prior or next channel is displayed in thegraphic overlay portion 111 of the television receiver screen 27, whilethe tuner remains tuned to the channel program that appeared on thetelevision receiver at the time the user entered the BROWSE mode, asshown in FIG. 12, and continues to so appear. Each successive depressionof the up or down direction arrow key produces corresponding programschedule information for the selected channel. The graphic overlay mayalso include a small video window for showing the actual video signal ofa currently aired program or a clip of a future program corresponding tothe schedule information then appearing in the BROWSE overlay. In thisway, the user can simultaneously scan program schedule information forall channels while continuously viewing at least one selected program onthe television receiver. With the advent of sophisticated televisionreceivers, it may also be possible to simultaneously display multiplebroadcast programs on a single screen for viewing, or to split thescreen to show, for example, broadcast programs in combination withadvertisements. The BROWSE feature could be used in any of thesesituations.

If, at any time during scanning of the program schedule information inthe BROWSE mode, the user desires to tune the television receiver 27from the program channel currently being viewed to the program channelindicated in the schedule information in the graphic overlay, he simplydepresses the ENTER button 44 and the tuner 28 will be tuned to thatchannel. If the user does not want to view another channel and wishes toexit the BROWSE mode, thus removing the graphic overlay 111 with theprogram schedule information, he must depress the MODE key twice in thefirst embodiment of the remote controller 31. The first depression ofthe MODE key takes the user to the MENU mode, discussed below, and thesecond depression will take the user to the FLIP mode. Once in the FLIPmode, the graphic overlay will be removed after the duration of thetime-out interval has passed. In the second embodiment of the remotecontroller shown in FIG. 4, the user toggles the BROWSE icon key todeactivate the BROWSE mode.

When the user first enters the BROWSE mode and begins scanning channels,the schedule information appearing in the overlay portion 111 describesthe programs currently playing on any particular channel. In order toview programming information for later or earlier times, the useremploys the left and right direction arrows 43B. As a consequence, thesystem will display future program schedule information for theparticular channel previously selected by the up and down directionarrows, whether it is the channel currently being viewed or any otheravailable channel. The schedule information presented includes the nameof the program and program start/stop time. The instant embodiment ofthe system, in order to conserve memory, will not allow the user to viewprogramming information for a time prior to the current time. The systemcould be easily modified to provide such information if adequate memoryis made available. It may be desirable, for example, to allow a user toview schedule information for an earlier time to find a particular showand then allow the user to command the microcontroller to find anddisplay future airing dates of the show, or the microcontroller couldsimply do this automatically.

When viewing program schedule information for a future time in theBROWSE mode, the displayed time of airing 121 of the particular show 122is highlighted, as well as the channel number and service indicator 123,as shown in FIG. 12A. Such highlighted information reminds the user thathe is viewing program schedule information for a future time. Also, whenviewing program schedule information for a future time on any particularchannel in the BROWSE mode, depression of the channel up direction arrowkey on the remote controller 40 causes programming schedule informationfor the next channel to appear, which corresponds in time to the futuretime that was being viewed before the up key was depressed by the user.The channel down direction arrow key 43B functions identically in thismode.

If while viewing program schedule information for a future time inBROWSE mode the user depresses the ENTER key on the remote controller,the microcontroller 16 will instruct the VDG 23 to display a REMINDERoverlay message 130 which, as shown in FIG. 13, is displayed as a secondoverlay 131 appearing above the BROWSE overlay 132. The REMINDER message130 queries the user as to whether the system should remind the user, ata predetermined time before the start of the selected program, that heor she would like to view the selected program, as shown in FIG. 13. Ifthe user responds affirmatively, the microcontroller 16 stores reminderdata consisting of at least the channel, time and day of the selectedprogram in a reminder buffer, which contains similar scheduleinformation for all programs for which the user has set a reminder. At apre-determined time before the selected program start time, for example,five minutes, the microcontroller 16 will retrieve schedule information,including title and service, based on the reminder data, and willinstruct the VDG 23 to display a REMINDER overlay message 140 on thetelevision receiver 27, as shown in FIG. 14, to remind the user that heor she previously set a reminder to watch the selected program. TheREMINDER message 140 contains the channel, service and start time. Italso displays the number of minutes before the time of airing of theparticular show and updates the display every minute until the time ofairing. The REMINDER message 140 also displays a “TUNE” inquiry, whichasks the user if she would like to tune to the selected program. Whenthe user sets multiple reminders, the reminder overlays are stacked, forexample, in ascending order according to the time each reminder isscheduled to be displayed, and the next reminder message will appear onthe television receiver after the user takes appropriate action toremove the reminder message then being displayed. The REMINDER message(140 could also be adapted to allow the user to display or modify a listof all reminders previously set by the user. As with the overlay displaytime period in the FLIP mode, the user can modify the time period beforea selected program that the REMINDER message appears by entering theViewer Preference mode and revising the time entry.

MENU Mode

Using the remote controller 31 shown in FIG. 3, the user can enter theMENU mode from the BROWSE mode or from the FLIP mode by toggling theMODE button 38 once or twice, respectively. Using the remote controller40 of FIG. 4, the user would simply depress the key 47B corresponding tothe MENU icon.

Referring to FIG. 6, in the MENU mode, the system displays a pluralityof menu items and icons, which correspond to and allow user selection ofdistinct program schedule information display formats, local cablesystem message boards and other on-line information services. The MENUscreen shown in FIG. 6 is a full-screen display. In the embodiment shownin FIG. 6, there are four vertically selectable horizontal bars 61-64,which are accessed using the up and down direction arrows 43A on theremote controller 31 or 40. At the extreme left of each bar, anidentifying icon 61A-64A is displayed, which identifies the informationcontained in that bar. In the embodiment of FIG. 6, the “TV GUIDE” icon61A in the first bar corresponds to program schedule information from TVGuide® magazine, the “NOW SHOWING” icon 62A in the second bar 62corresponds to pay-per-view and premium service events, the “MSO Logo”icon 63A in the third bar 63 corresponds to Customer Service or localcable company information messages, and the circular icon 64A in thefourth bar 64 corresponds to other interactive services available to theuser, or in the case of broadband networks, other venues, e.g., homeshopping, banking or telephone use. As also shown in FIGS. 6 and 6A,each bar also contains a textual description of its contents.

When the user first enters the MENU mode, the system defaults toselection of the program schedule bar. When a particular bar isselected, the textual description is removed and a plurality of icons oridentifying windows are displayed adjacent the identifying icon. In FIG.6, the program schedule bar 61 is selected. Using the up or downdirection arrow key on the remote controller 40, the user selects avertically adjacent bar. FIGS. 15-17 show, respectively, selection ofthe Pay-Per-View bar 62, the Customer Service or Messages bar 63 and theInteractive TV services bar 64.

An alternative MAIN MENU screen 215 is shown in FIG. 38. Certainselection screens accessible from the menu shown in FIG. 38 are shown inFIGS. 38A and 38B. It has three horizontally selectable bars: programschedule 205, Home Theater 206 and Customer Service 207. The MAIN MENUscreen 215 also contains an additional “Locator” identifier, which isdescribed below.

Once a particular bar in the MENU screen is selected, the user canselect a particular icon from the plurality of horizontally selectabledisplayed icons 65A-65C by using the left or right direction arrow andthe ENTER key on the remote controller 40. Each icon contains agraphical symbol appearing in a background window of a particular color.When a particular icon is selected, it is offset from its backgroundwindow and the color of the window changes. In FIG. 6, the grid icon 65Aimmediately adjacent the “TV GUIDE” icon in the first bar 61 isselected.

The function corresponding to the selectable entries in the MAIN MENUscreen will now be discussed with reference to FIG. 6. It will beappreciated by those of skill in the art that the same functionalityapplies in the categories shown in the MAIN MENU 215 shown in FIG. 38.

In the uppermost vertically selectable horizontal bar 61, the first gridicon 65A represents an “All Listings” mode in which the program scheduleinformation is displayed in a grid listing, such as that shown in FIG.18. Alternatively, a single column grid-like display could be used, asthat shown in FIG. 25. In this format, the vertical y-axis identifiesthe channel number and service while the horizontal x-axis identifiesthe time. The screen display of FIG. 18 also contains in the upperleft-hand corner a mode identifier 180, in this case the notation “AllListings,” to remind the user of the current operating mode of thesystem. Directly underneath the mode display is a highlighted display181 of the channel that the user was watching before entering the MENUmode. In the upper right-hand corner, a logo icon 182 appears in awindow directly above a date/time identifier 183, which alternativelydisplays the current date and time.

In the center of the screen display shown in FIG. 18 is a graphicalActive Key Display (AKD) 184 which indicates to the user those keys onthe remote controller that are active for that particular mode of theprogram guide display system. For example, in the screen display of FIG.18, the cursor can only move up, down or to the right. If the user wereto depress the left direction arrow key on the remote controller at thatpoint, the system would not carry out any function since the cursor cannot move to the left. Thus, the left arrow key is not active so itsimage is not displayed on the AKD 184. Similarly, since the system willonly respond to a depression of the up, down or right direction arrowkeys and the ENTER key, they are the only key images displayed on thegraphical AKD 184. The MODE key, though not displayed, is always activeto change from one mode to another. When the user first enters the AllListings guide, the time listing begins by default at the half-hourimmediately preceding the current time unless the current time is on thehour or half-hour, in which case the display begins with the particularhour or half-hour, and the channel listing begins at the last channelbeing viewed by the user before entering the MENU mode. For example, inFIG. 18, the current time is displayed as 7:13 p.m., the time listingbegins at 7:00 p.m. and the channel listing begins with channel 4.

In the All Listings mode, a moveable highlighted cursor 185 is used toindicate the currently selected program to the user. The usermanipulates cursor movement using the direction arrow keys on the remotecontroller 40. Furthermore, the entire information display pages upwardif the cursor is placed at the bottom of the screen and the downdirection arrow is depressed, and similarly pages to the left if thecursor is at the extreme right side of the display and the rightdirection arrow is depressed. In this way, the user can navigate throughthe entire program schedule.

The folder icon 65B immediately to the right of the All Listings icon inthe top horizontal bar 61 of FIG. 6 identifies a “Category Listing” modein which program schedule information is displayed and categorized byprogram content, as shown in FIG. 19. The particular listing shown inFIG. 19 includes the categories of Movies, Sports, News and Children190A-190D. The database record stored for each listing contains acontent-specific identifier so the microcontroller can search thedatabase and categorize the information by content for purposes ofdisplaying it in the Category Listing mode. As shown in FIG. 19, theuser can manipulate the cursor left or right to highlight any one of thecategories which appear at the head of the listing. In FIG. 19, the“Movies” category 190A is selected. As shown, the user is given adisplay of all movies, prioritized by time and then alphabetically bytitle of show, beginning with the half-hour immediately preceding thecurrent time unless the current time is on the hour or half-hour, inwhich case the display begins with the particular hour or half-hour. Thescreen display shown in FIG. 19 also includes a textual description ofthe current operating mode of the program schedule system, as well asthe graphic AKD 184, similar to that used in connection with the AllListings mode.

As with the All Listings mode, if the user highlights a show which iscurrently airing, he can immediately tune to that show by depressing theENTER key on the remote controller 40. If the highlighted show is onethat will appear at future time, the user is again given the option ofsetting a REMINDER message.

The triangular icon 65C at the far right of the TV GUIDE bar 61 in thedisplay of FIG. 6 identifies a “Channel Listing” mode in which theprogram schedule information is categorized and displayed by channel, asshown in FIG. 20. The screen display shown in FIG. 20 again includes atextual mode identifier 201, the graphic AKD 184, and the windowincluding the logo icon 182 and alternating time/date display 183. Atthe head of the program listing is a list of several consecutivechannels 202A-202C beginning with the last channel viewed by the userbefore entering the Channel Listing mode. The channel in the middlewindow 202B is highlighted and is the channel for which scheduleinformation is displayed. The display identifies those programsappearing on the highlighted channel beginning with the half-hourimmediately preceding the current time unless the current time is on thehour or half-hour, in which case the display begins with the particularhour or half-hour. The user can display further future listings bymanipulating the cursor to the bottom of the screen and paging thedisplay, as previously described. The user can also change the selectedchannel by manipulating the left or right direction arrow keys on theremote controller 40. When the user issues a change-channel command inthis manner, the next consecutive channel will be displayed in thehighlighted window 202B in the channel string at the head of thedisplay, and schedule information for the newly selected channel will bedisplayed on the television receiver 27.

As with other modes, if a user wishes to tune to a highlighted programthat is currently airing, he can do so by simply depressing the ENTERkey on the remote controller 40, and if the user wishes to view aprogram that airs at a future time, the user is again given the optionof setting a REMINDER message. In each of the FLIP, BROWSE and MENUmodes, a lower case “i” icon appears at a number of occasions inconnection with certain program listings, such as movies, such as the“i” 203 shown in FIG. 20. Any time this icon appears, the user can viewadditional programming information, generally comprising a textualdescription of program content and/or other information related to theprogram, such as the names of cast members and the like, by depressingthe “i” key 48 on the remote controller 40. An example of a display ofsuch additional information is shown in FIG. 21. The second horizontalbar 62 appearing on the screen in the MAIN MENU mode shown in FIG. 6 isthe “Home Theater” Listing. It corresponds to Pay-Per-View events orservices, specialized programming, and Premium Service programs. Whenthis category is chosen by the user, the television receiver displaysinformation as shown in FIG. 15. The first theater-ticket icon 150 thatappears in this Home Theater bar identifies a format in which thePay-Per-View events and premium services are displayed, as shown in FIG.22. As with other modes, the user can manipulate the cursor to highlightand select any particular show. Also, the user can obtain additionalinformation about the Pay-Per-View event or service by depressing the“i” key 48 on the remote controller 40. The Pay-Per-View menu screendisplay shown in FIG. 22 also includes a video display section 220 inwhich short promotional clips of current and future events and servicescan be shown to the user while the user is viewing the Pay-Per-Viewscheduling information. The display of FIG. 22 is bit mapped such thatthe advertising clips may be shown in the lower left quadrant of thescreen. The clips may be shown randomly in the video display section 120or, alternatively, the clip shown could correspond to the particularselected entry on the list of events, and would change automatically asthe user navigated through the list.

When a user highlights a Pay-Per-View event or service by manipulatingthe cursor to the desired event or service using the direction arrowkeys on the remote controller 40, he can order the event or service bydepressing the ENTER button on the remote controller, thus linkingschedule, promotional and ordering functions. If the user selects aparticular Pay-Per-View event or service in this manner, the programmingschedule system will next present to the user a Pay-Per-View orderingscreen such as that shown in FIG. 23. The display includes a figurerepresenting the cost of the event or service. The display also asks theuser to choose from among a plurality of scheduled airing times230A-230C, as well as whether the user would like to see a REMINDERmessage prior to the start of the Pay-Per-View event or service. Theuser responds to these inquiries by using the direction keys on theremote controller 40 to manipulate the cursor to the proper response andthen depressing the ENTER key. After the user has ordered a Pay-Per-Viewevent or service, the program schedule system will present the user withtwo ordering confirmation submenus, such as shown in FIGS. 24 and 24A.In either of these submenus, the user can confirm or cancel thePay-Per-View event or service.

If the user confirms the order, the microcontroller 16 stores thePay-Per-View ordering information in a location in memory. The orderinginformation can then be transmitted to the cable operator by themicrocontroller 16 either by phone line or on the cable line where thesystem has two-way communication or other such interactive capability.Alternatively, a computer at the cable operator location can interrogatethe memory where the microcontroller stored the Pay-Per-View orderinginformation. At the appropriate time, the cable operator supplies thePay-Per-View event or service and it is received by all users who haveordered the program.

The second icon 151 in the Pay-Per-View bar of FIG. 15 identifies aspecialized broadcast, cable or satellite programming service to whichthe user has access via the electronic program guide. In this mode, theelectronic program guide application software acts to connect the user,through an appropriate data transmission link, to the programmingservice, at which point the user interacts with the service.Alternatively, the electronic program guide provides the navigationsoftware, including the menus and scheduling information, for theparticular programming service. Such a service could be, for example,Your Choice TV (“YCTV”), a service offering reruns of highly ratedbroadcast and cable programs, in which case the icon may take a formsuitable to identify YCTV. The programming available on YCTV is thensupplied to the user via the programming guide system.

The last icon 152 appearing in the Pay-Per-View bar of FIG. 15identifies a display format which lists all Premium Services offered bythe cable operator, as shown in FIG. 26. In this mode, the user canselect for impulse ordering any one of the premium services bymanipulating the cursor using the direction arrow keys on the remotecontroller and depressing the ENTER key. Similar to Pay-Per-Viewordering, the system will present the user with a series of orderingdisplays and, if a service is ordered by the user, it will confirm theuser's request using another other submenu. If confirmed, themicrocontroller 16 will store the ordering information or transmit itdirectly to the cable operator. Once the order has been confirmed, themicrocontroller can immediately allow the user access to the orderedpremium service. In this manner, the user can order premium events orservices on demand.

If, during FLIP or BROWSE modes, a user views a channel or scheduleinformation for a service not subscribed to by the user, themicrocontroller 16 causes an ordering submenu to appear instead ofdisplaying a program signal along with the graphic overlay, as shown inFIG. 9. This submenu indicates to the user that she does not currentlysubscribe to the selected service, and then asks the user if she wouldlike to order the service. If the user responds affirmatively, theprogram schedule system takes the user to the ordering submenu discussedabove. In this manner, the user can order premium events or services onimpulse.

The third horizontal bar 63 in the MENU mode shown in FIG. 6 is the“Messages” or “Customer Service” listing. As shown in FIG. 16, the firstenvelope icon 160 represents message information available from thecable operator. When the user selects the message icon, he is presentedwith a screen display of currently available messages, as shown in FIG.27. The display shown in FIG. 27 includes cable system messages 270 andbilling information 271. If the user selects the cable system messagesoption 270, she is presented with a message pertaining to the localcable operator, such as that shown in FIG. 28. If the user selects thebilling status option 271 shown in FIG. 27, she is presented with adisplay of current billing information, such as that shown in FIG. 29.This information may include a history of purchases charged to the user,current balance information, pending orders, and, an indication ofavailable credit, which can be an authorized debit limit previouslyarranged with the cable or other operator. Thus, a user could specifyonly a certain pre-set spending limit. Once the amount of charges frompay-per-view events reaches the limit, the microcontroller would notpermit further ordering of events. An alternative messages menu is shownin FIG. 28A.

The next icon 161 in the Customer Service information bar 63 of FIG. 16identifies a “Viewer Preference” mode, which allows the user to createor revise a number of program schedule system operating parameters. Onceselected, this display presents the user with several preference optionsconcerning certain operating parameters of the program schedule system,as well as the viewing of certain channels and/or certaincontent-specific programming, for example, those shown in FIG. 7.

The first option shown in FIG. 7 is the “Parental” option 70, which canalso be expressed as a “Key Lock Access” option. Once this option isinitially selected by the user, the system displays a “Key Lock Access”submenu such as that shown in FIG. 30.

The Key Lock Access menu shown in FIG. 30 allows the user to controlaccess to individual channels and programs or events by requiring theuser to enter an access code “key,” consisting of a user-specified fourdigit code in the specific embodiment discussed herein, before orderingor viewing these pre-selected channels, programs or events. The menudisplay shown in FIG. 30 shows a series of subject categories that areentries in the vertical y-axis selectable by the user. A particularsubject category is chosen by using the up or down direction arrow keyson the remote controller 40 to highlight the desired entry. Once theuser selects a particular subject category, the left and right arrowkeys are used to navigate within the chosen category.

The first subject entry shown in FIG. 30 is the “Parental Guidance”category 301. Once the user selects this category by manipulating thecursor to highlight the entry, the cursor can be then moved horizontallyto an active window 302 which displays and selects one the five letterrating items in the category. The letter items represent ratings ofprogram content as follows: “V” for violence, “N” for nudity, “L” forlanguage, “AS” for adult situations and “PD” for parental discretion.Once the user selects a particular item, such as “L”, by moving to theactive window 302 using the right direction arrow key, depressing theENTER key will indicate to the microcontroller 16 that a key lock accesshas been selected for programs rated with a “L” rating for violent orexplicit language. The system indicates activation of a key lock accessby displaying a key icon directly below the “L” category display. Once akey lock access is set, it can be deactivated by selecting the categoryletter and then depressing the ENTER key. This action causes the keyicon to disappear. The user can change the rating category in the activewindow 302 by using the left or right direction arrow keys on the remotecontroller 40, images of which are displayed on the screen adjacent theactive window as a reminder to the user. In this manner, the user canselect other rating categories for setting a key lock access for any ofthe program content identifiers appearing in the Parental Guidancecategory.

The key lock access code itself consists of a four digit code, which theuser can enter and modify at any time. To do so, the user highlights thefourth vertically selectable entry “Change Key Lock Access Code,” 304 bymanipulating the cursor to highlight it using the direction arrow keyson the remote controller. Once highlighted, the user enters a new fourdigit code or revises the then existing code and depresses the ENTERkey. The microcontroller 16 then identifies the new four digit key lockaccess code and stores it in memory. The user can clear the key lockaccess code, as well as all other previously activated keys, by movingto the last entry in FIG. 30, “Clear Key Lock Access Code and All Keys,”305 which highlights the “OK” window, and then depressing the ENTER key.This action clears and deactivates all previously set keys, as well asthe key lock access code.

The schedule information database record for each program contains afield that corresponds to the program content identifiers in theParental Guidance category. During operation, the microcontroller checksthis field in response to a user command to tune to or order a program,or to display its corresponding schedule information before carrying outthe tuning, ordering or displaying function. If the parental guideidentifier in the program schedule information database record matchesany one of the activated parental guidance identifiers shown in FIG. 30,the user will be prompted to enter the four digit key lock access codebefore the system takes any further action. If the entered code matchesthe key lock access code previously entered and stored by the user asdescribed above, the system will carry out the user request to tune tothe program, to order it, or to display its corresponding scheduleinformation. If the code is not recognized by the system, no furtheraction will be taken and the user's request will be denied.

By manipulating the cursor using the direction arrow keys to highlightthe second entry, “MPAA ratings,” 308 the user can also set a key lockaccess for programs based on their MPAA rating code, as also shown inFIG. 30.

As with the Parental Guidance category, once the MPAA rating categoryhas been selected, the user can move horizontally within the category tothe active window 306 to select one the five rating codes, i.e., “G” forgeneral audiences, “PG” for parental guidance, “PG-13” for suggestedparental guidance, no one under 13 admitted without an adult, “R” forrestricted and “X” for x-rated. As with the Parental Guidance category,by selecting a particular rating—by using the left or right directionarrow keys until the particular rating code appears in the activewindow—and then depressing the ENTER key, the user sets a key lockaccess for the rating, in which case a key icon appears below the ratingcode. And, as with the Parental Guidance category, once a key lockaccess is set, the system will prompt the user to enter the four digitkey lock access code anytime a request is made to tune to, order ordisplay schedule information for a particular program having a ratingcode which matches a rating code for which key lock access has beenactivated.

The Key Lock Access mode also includes a subject category 303 forcontrolling access to channels, which may be entitled, for example,“Channel Block” or “Channel Lock.” As with the Parental Guidance 301 andMPAA 308 categories, the user navigates to the Channel Block category303 by manipulating the cursor using the direction arrow keys on theremote controller and depressing the ENTER key. Once the Channel Blockcategory 303 has been entered, the user can move horizontally to anactive window 307, which in FIG. 30 indicates channel 2. Once the userhighlights this window by manipulating the cursor using the directionarrow keys on the remote controller 40, a key lock access can be set forthe channel appearing in the active window. This is done, as with theother subject categories in the Key Lock Access mode, by depressing theENTER key, which again causes a key icon to appear below the channelnumber in the active window. The user can move to the prior channel orto the next channel in sequence by depressing either the left or rightdirection arrow key on the remote controller 40. In this manner, theuser can activate a key lock access for any available channel.

As with the Parental Guidance 301 and MPAA 308 categories, once a keylock access is set for a particular channel, the system will prompt theuser to input the key lock access code prior to carrying out aninstruction to tune to or order that channel. If the input key lockaccess code matches the previously stored access code, the user'sinstruction is carried out. Otherwise, the user's instruction isignored. Thus, the user can control access to the audio and videoprogram content of any available channel. In this instance, themicrocontroller 16 will not allow audio or video program signals to passto the VDG, but it will allow schedule information to appear for thechannel.

An alternative method for effecting lockout of programs is accomplishedusing a “Lockout” screen, as shown in FIG. 39. In addition to limitingaccess to programs based on the Parental Guidance, MPAA and channelcriteria, as discussed above, access may be limited on the basis ofprogram title. FIG. 39 shows an alternative Lockout screen 250 that canbe used to permit or limit access to programs based on program title, inaddition to the aforementioned criteria. Other parameters also may beincluded, such as time of day, day of week, credit limit, and contentcategory (e.g., talk shows).

To enter the Lockout screen 250 shown in FIG. 39, the user must enter amulti-digit lockout code using the numeric digit keys 42 and the enterkey 44 on the remote controller 40. The lockout code is set initiallywhen the system is first used or installed. To set a lockout code in thefirst instance, the user accesses a Setup screen 260, such as that shownin FIG. 40. The Setup screen 260 will automatically appear the firsttime the electronic program guide is installed and initialized. Foraccess during normal operation of the electronic program guide, asuitable access path to the Setup screen 260 may be provided, such asfrom an appropriate icon in the MAIN MENU 215.

In the Setup screen 260 of FIG. 40, the user can navigate to the LockoutCode category 265 and set a new lockout code using the appropriatenavigation and selection keys on the remote controller 40. A suitablemenu for inputting the lockout code is shown in FIG. 40A. Once enabled,the lockout code must be used to set or modify locks, to view apreviously locked program, or to clear or change the lockout code. Thememory location of the stored lockout code also should be remotelyaccessible, such as by the local cable company, in case the user forgetsthe lockout code and it must be erased.

Once the lockout code is entered and the Lockout screen 250 of FIG. 39is displayed, navigation within the screen is controlled by thedirection keys 43A and 43B on the remote controller 40. Using the up anddown direction keys 43A to move the selection cursor, either the MovieRating 251, Parental Guidance 252, Channel 253, Locked Program 254 orLockout Code 255 category can be selected. The left and right directionkeys 43B are then used to navigate inside the selected category.

Clearing a previously set lockout code is accomplished by moving theselection cursor to the “Clear” entry 256 in the Lockout Code category255 and depressing the enter key 44 on the remote controller 40. Thiscauses the microcontroller to clear the lockout code stored in memory,as well as all locks previously set by the user. To change the currentlockout code, the user navigates to the “Change” entry 257 in theLockout Code category 255 and depresses the enter key 44 on the remotecontroller 40. The user is then prompted to enter a new lockout code,which is subsequently stored in memory by the microcontroller.

To set a lock in either the Movie Rating 251 or Parental Guidance 252category, the user navigates to the selected entry in FIG. 39 bymanipulating the selection cursor using the direction keys 43A and 43Bon the remote controller 40, and then depresses a lockout key on theremote controller, such as the padlock key 45A shown in FIG. 4. Themicrocontroller will appropriately modify the display to indicate that alock has been set, for example, by changing the color of the text or thebackground in the selected entry window, or by displaying an appropriateicon next to the text in the selected entry window. In FIG. 39, apadlock icon 258 appears in the window of the “PG” entry in the MovieRating category 251. Toggling the lockout key while the selection cursoris positioned on a selected entry will alternately enable and disablethe lockout function for that entry.

Similarly, to set a lock for a particular channel, the user selects thechannel using the selection cursor and then depresses the lockout key.In FIG. 39, the channel “4 KCNC” entry in the Channel category 253 hasbeen locked, which is indicated by the inverse video and padlock iconappearing in the window.

Program locks also may be set by title, which can be effected in severalways. For example, when the above-described FLIP or BROWSE mode of theelectronic program guide is enabled, thereby causing the title of aprogram to be displayed along with other program schedule information ina window superimposed on the actual program signal then being received,the user can limit access to the program corresponding to the displayedprogram information by depressing the lockout key 45A on the remotecontroller 40. The user also may limit access to the currently tunedprogram by depressing the lockout key 45A on the remote controller 40while viewing the program, regardless whether the FLIP or BROWSE modesare enabled. In this instance, the microcontroller first removes theprogram signal from the display and then accesses the scheduleinformation database record for the program then appearing and sets anappropriate flag to indicate the program has been locked. Also, whenviewing program schedule information in the grid or category listings,as discussed above and shown, for example, in FIGS. 18-20, the user alsocan tag a program for lockout by highlighting it with the selectioncursor and then depressing the lockout key 45A on the remote controller40.

In each of these instances, the microcontroller then stores the programtitle in a lockout title list stored in memory along with any othertitles that previously have been locked out by the user. Individualitems in the lockout title list are displayed in alphabetical order inthe “Locked Program” window 259 shown in FIG. 39, and the user mayscroll through the list by positioning the selection cursor on theLocked Program window 259 using the up and down direction keys 43A onthe remote controller in FIG. 40 and then using the left and rightdirection keys 43B to scroll through the list one item at a time. Inorder to save memory space, alternatively, the microcontroller may beprogrammed to set a flag or otherwise mark the particular databaserecord containing the program schedule information for the program thatis to be locked out, and to thereafter access the database to retrievethe title information when it is to be displayed, such as when theviewer is reviewing the lockout title list in the Locked Program window259.

Once an individual title has been locked out, the microcontroller can beprogrammed optionally to display an appropriate lockout icon, such as apadlock, whenever program schedule information for the locked program isto be displayed, such as in the window overlay of the FLIP or BROWSEmode, or in the various grid and category displays available in the MAINMENU displays. The system also may display an appropriate text messageif someone tries to access the program signal of a previously-lockedprogram. Of course, once a program is locked, in all instances themicrocontroller prevents access to the actual program signal (includingboth the audio and video portions of the program signal) until anappropriate code is entered or the lockout is removed.

Several methods can be used to block programs at their time of airing.For example, in the case of the Movie Rating, Parental Guidance andChannel categories, the schedule information database record for eachprogram is provided with a field that corresponds to the rating, programcontent identifier or channel appearing, respectively, in the MovieRating 251, Parental Guidance 256 and Channel 253 category of theLockout screen 250 shown in FIG. 39.

During operation, the microcontroller checks the appropriate field inthe database record in response to a user command to tune to or order aprogram before carrying out the tuning or ordering function.Additionally, the lockout code also may be used to restrict access toprogram schedule information. In this instance, the microcontroller alsowould check the appropriate field in the schedule information databaserecord before displaying schedule information for a program.

If the movie rating, parental guidance or channel identifier in theprogram schedule information database record matches any one of thelocked-out entries indicated in the Lockout screen 250, a Lockout Verifyscreen 300 is displayed in overlaying relationship with the video signalthen being displayed on the television receiver, as shown in FIG. 41.The user will be prompted to enter the previously set lockout codebefore the system takes any further action. As an added securitymeasure, asterisks will be displayed as the user enters the lockoutcode. If the entered code matches the lockout code previously enteredand stored by the user as described above, the system will carry out theuser request to tune to or order the program, or to display itscorresponding schedule information. If the code is not recognized by thesystem, no further action will be taken and the user's request will bedenied. In this case, the Lockout Verify screen 300 will remaindisplayed on the television receiver waiting for a correct code to beentered. If no action is taken by the user, the Lockout Verify screen300 will be removed after a predetermined time-out period, such as oneor two minutes.

Similarly, in the case of lockout by title, the microcontroller alsocould check the title field in the schedule information database recordand compare it with the list of program titles for which the userpreviously set a lock. If, as described above, the microcontroller doesnot maintain a list of the actual titles of programs locked by title, asuitable identifier can be set in a field in the database record toindicate that a program has been locked by title when the user firstsets the lock, and, thereafter, the microcontroller could check thatfield in response to a user request to tune to or order a program, ordisplay schedule information.

An alternative method for effecting lockout involves the use of aportion of the real-time program signal being received by the televisionreceiver. With this method, codes corresponding to a program's rating,parental guidance category, title or channel are inserted into andtransmitted along with the program signal, such as in the vertical orhorizontal blanking intervals, or on raster scan lines that are notvisible on the television receiver. When the program signal is received,these codes are stripped from the program signal and stored in memory.Methods and apparatus for the insertion transmission and reception ofdigital codes carried on a program signal are known in the art.

After the transmitted codes have been separated from the program signaland stored in memory, the microcontroller can compare them with thelockout criteria set by the user in the Lockout screen and takeappropriate action, as described above.

The Setup screen 260 shown in FIG. 40 also contains a Purchase Codecategory 270, which allows the user to set a numeric purchase code thatmust be entered before any premium channels or pay-per-view programs canbe ordered. The Setup screen 260 shown in FIG. 40 includes entries forsetting a new purchase code and for clearing or changing a previouslyset password. Appropriate menus for setting, confirming, clearing orchanging the purchase code are shown in FIGS. 40B through 40E. Once auser sets a purchase code, the microcontroller thereafter will display aPurchase Code Verify screen in response to a user request to tune to ororder a premium services channel or pay-per-view program. The PurchaseCode Verify screen works in a manner similar to the Lockout Verifyscreen 300 in that the user is prompted to enter the previously setpurchase code password before the microcontroller will tune to or orderthe requested program. If the correct purchase code is not entered, themicrocontroller will take no further action and the Purchase Code Verifyscreen will remain displayed waiting for input of the correct code. Ifno action is taken within a predetermined time-out period, the PurchaseCode Verify screen will be removed.

The next option shown in FIG. 7 is the Channel Preference or “FavoriteChannel” list option 71. By highlighting this icon and depressing theENTER key on the remote controller 40, the user is presented with asubmenu on the screen such as that shown in FIG. 8.

In normal operation, the program guide system presents channels to theuser in numerical order in response to an up or down change-channelcommand issued by the user using one of the direction arrow keys on theremote controller. The channel number presentation sequence includes allchannels offered by the cable company in the order of which they aremodulated onto the channel by the operator.

The program guide system also provides the capability of selecting fromamong several user-defined channel presentation sequences, which areactivated using one of the three “check mark” icon keys 48A, 48B or 48Con the remote controller 40 shown in FIG. 4. Each of these keysrepresents a preferred particular list of channels which a particularuser selects and which the microcontroller stores in memory as a“Channel Preference” list, as discussed in detail below. To activate oneof these preferred channel lists, the user depresses the correspondingcheck-mark icon key, in which case the microcontroller may display thechosen icon on the screen in the graphic overlays and full screendisplays to remind the user that a particular channel preference list isbeing used by the system. Once a preference list is activated, thesystem will limit the tuning of the television receiver and the displayof schedule information only to those channels that are designated inthe activated viewer preference list.

To revise the content and/or sequential order of the channels in theChannel Preference list, the user enters the MENU mode of theprogramming guide system. To enter the MENU mode from the FLIP mode, theuser twice depresses the MODE key 38 when using the remote controller 31of FIG. 3. To enter the MENU mode when using the alternative embodimentof the remote controller 40 of FIG. 4, the user simply depresses theMENU icon key 47B.

When first entered, the MENU mode has a screen display such as shown inFIG. 6. To select the submenu for editing the Channel Preference list,the user first selects the third horizontal bar 63, which can be titled,for example, “Messages” or “Customer Service,” by manipulating thecursor using the down direction arrow key, as shown in FIG. 7. Thescreen of FIG. 6A is thereby displayed. The user then selects the secondicon 161 appearing in that bar, indicated with a check mark, whichcorresponds to a “Viewer Preference” mode, by highlighting the iconusing the direction arrow keys and again depressing the ENTER key. Thisaction will cause the microcontroller 16 to display a Viewer Preferencesubmenu such as that shown in FIG. 7. By selecting the ChannelPreference or “Favorite Channel” entry 71, the user enters the ChannelPreference submenu, shown in FIG. 8. If the user has not already doneso, he would then depress the particular check-mark icon key on theremote controller 40 of FIG.4 to create or revise the particular channelpreference list.

In the Channel Preference menu shown in FIG. 8, a list 80 of allchannels available on the particular cable system is displayed on theleft side of the television receiver screen, labeled “Choices” in FIG.8, and the viewer's preferred list 81, designated “Selected” in FIG. 8,is displayed on the right side. If a particular code, such as an END or“−1” symbol appears in the first (uppermost) position 82 of the viewerpreference list 81, the system displays information for all channels innumerical order in all modes of operation. This is the default mode ofthe system.

By selecting channels in sequence from the available list 80 and placingthem in the desired order in the preference list 81, the user can selecta subset of channels and/or rearrange the default sequence in responseto a channel up or channel down command from the user. This isaccomplished by highlighting a channel in the available list 80 usingthe up and down direction arrow keys on the remote controller 40 anddepressing the ENTER key 44, which stores the entry temporarily in abuffer.

The microcontroller 16 stores a list of all channels previously enteredin the viewer preference list 81. As a particular channel is highlightedby the user when navigating through the available channel list 80displayed on the left side of the television screen, a window 84 appearsadjacent to the particular channel highlighted by the user. If theparticular channel already appears in the viewer preference list 81, thesystem displays a “DELETE” message in the window 84 as a reminder thatthe channel was previously selected from the available channel list 80and can only be deleted from the list 81, which is accomplished bydepressing the ENTER key 44. If the particular highlighted channel inthe list 80 was not previously selected, the system displays a “SELECT”message in the window 84 as a reminder that the particular channel willbe selected for addition to the viewer preference list 81 if the userdepresses the ENTER key 44. The microcontroller 16 inserts a selectedchannel at the bottom of the list 81. In this manner, the user canselect or delete channels from the viewer preference list in any desiredorder.

The available channel list 80 may also be provided with categoricalentries 83, such as movies, news, sports or children's shows. The usermay also highlight any of these entries and put them into the viewerpreference list 81. If the user does include a category in his viewerpreference list 81, when the user issues channel up or down commands,the system will display, in sequence, first the user's selectedpreferred channels in numerical order and then all channels having aprogram whose content corresponds to the selected category or categoriesat the time.

Once the user has revised the channel preference list 81 in thedescribed manner, the microcontroller 16 will follow the storeduser-specified channel sequence in response to a change-channel commandmade by the user employing one of the direction arrow keys. To activatethe viewer preference list, the user depresses one of the threecheck-mark icon keys 48A, 48B or 48C on the top of the remote controllershown in FIG. 4. The viewer preference list can be used to selectivelylimit tuning of the television receiver or display of scheduleinformation in any of the operating modes of the electronic programguide. In the present embodiment, once a preference list is activated,the system will limit the tuning of the television receiver and thedisplay of schedule information in the FLIP, and BROWSE modes, as wellas in the grid category and channel listings in the MENU mode, only tothose channels designated in the activated viewer preference list. Thetuner can not be tuned to, and no corresponding schedule information canbe displayed for, any channel not entered in the viewer preference listwhen it is activated. In this regard, it should be noted that setting akey lock access in the Parental Guidance 301, MPAA 308 or Channel Block303 categories produces a different result than when using other displaycriteria, such as the Channel Preference List of preferred channelsdiscussed above. Thus, while a key lock access will prevent audio andvideo program information, but not schedule information, from beingdisplayed or ordered absent entry of an authorization code, if aparticular channel is included in the Channel Preference list and alsohas a key lock access activated in the Channel Block category 303 of theKey Lock Access mode, that channel or its corresponding scheduleinformation will not be displayed at any time.

To deactivate a previously selected viewer preference list, the usertoggles the appropriate check-mark icon key on the remote controller 40of FIG. 4. Once deactivated, the system defaults to displaying andtuning all available channels, as well as displaying scheduleinformation for all available channels.

Alternatively, the viewer preference list 81, if activated, can be usedto control tuning and display of schedule information only in selectedmodes, such as only in the FLIP mode, thus allowing the user to tune andview corresponding schedule information only for those channels enteredin the preference list 81 in the FLIP mode, while viewing all channelsand corresponding schedule information in all other modes.

In this latter configuration, as well as in the instance where nochannel preference list is activated and the system is in default mode,if a channel appears in the viewer preference list 81 that correspondsto a service not subscribed to by the user, the microcontroller 16causes an ordering submenu to appear instead of displaying a programsignal along with the graphic overlay, as shown in FIG. 9. This submenuindicates to the user that he does not currently subscribe to theselected service, and then asks the user if he would like to order theservice. If the user responds affirmatively, the program schedule systemtakes the user to another ordering submenu to confirm the user'srequest, as with impulse ordering.

The program guide also may be configured with a Locator screen 201, asshown in FIG. 37, which aids the viewer in channel selection anddefinition of a favorite channel list. The Locator screen 201 displaysall available channel numbers grouped according to the source of theprogram information appearing on any particular channel at anyparticular time, e.g., broadcast, cablecast, pay-per-view, near video ondemand, satellite, or other source of program material. Thus, theLocator screen 101 can be used to locate any particular channel orservice because the groupings provide a quick and efficient method forscrolling through the list of available channels. The channel numbersalso may be grouped according to other criteria, such as programcategory, program content, program rating or other content-basedstandard, time of availability, numerical order, or other logicalgrouping.

In the example shown in FIG. 37, the user navigates within the Locatorscreen 201 using the direction keys 43A and 43B on the remote controller40. The right and left direction keys 43B move the selection cursorwithin the category rows, while the up and down direction keys 43A areused to select a particular category. From the Locator screen 201, anyparticular channel can be selected for viewing by positioning theselection cursor on the desired channel and depressing either the enterkey 44 or an optional tune key (not shown) on the remote controller 40.

In addition to aiding in channel selection, the Locator screen 201 alsoprovides the user with the ability to conveniently define favoritechannel lists. To do so, the user first moves the selection cursor tothe desired channel by using the direction keys 43A and 43B or numericdigit keys 42 on the remote controller 40, and then depresses a favoritechannel key 46A provided on the remote controller 40, which causes thedisplay to change in some manner or characteristic as an indication thatthe channel has been selected as a favorite channel, such as by changingthe color of the channel identification text or the text background, bydisplaying an appropriate icon or by some other appropriateidentification scheme. In the remote controller 40 shown in FIG. 4, thepound key “#” can function as the favorite channel key.

Also, if multiple favorite channel lists are being used, the user woulddepress the appropriate favorite channel key on the remote controller toselect a particular list before depressing the favorite channel key. Forexample, as discussed above, the remote controller 40 shown in FIG. 4,has three color-coded check-mark favorite channel keys 48A, 48B and 48C,which provide for at least three individual favorite channel lists forthree individual users. Different identification characteristics couldbe displayed on the Locator screen 201 to indicate that a particularfavorite channel list is selected. For example, the icon or image usedto enable a favorite channel list on the remote controller, such as thecheck mark key 48A used on the remote controller 40 shown in FIG. 4,could be displayed on the Locator screen 201, as well as other screensof the program guide, when a favorite channel list is enabled.Alternatively, the color of the displayed text or background could bechanged to match the color of the selected favorite channel key.

The Locator screen 201 may be accessed via several paths. For example,it may be included as a virtual channel that is conveniently positionedin the channel-tuning sequence, such as between the highest and lowestavailable channel numbers—for example, a virtual channel 0. To the user,such a virtual channel appears to be a conventional channel. However, itrequires no additional bandwidth as a carrier. For example, it can bedigitally produced at the subscriber station or included in anappropriate blanking interval in existing bandwidth frequencies. In thismanner, the virtual channel is accessible either by entering thecorresponding channel number using the numeric digit keys 42 on theremote controller, or by using the up and down direction keys 43A towrap around from the highest to the lowest channel number, or viceversa. As shown in FIG. 38, it also may be desirable to provide asuitable identifier, such as an icon or text message 210, in the MAINMENU display 215, from which the user could access the Locator screen201 simply by highlighting the identifier 210 with the selection cursorand depressing the enter key 44 on the remote controller 40.Alternatively, the remote controller may be provided with a keycorresponding to the Locator screen 201 which would cause themicrocontroller to display the Locator screen 201 when the userdepressed it.

In addition to Channel Preference or Favorite Channel keys, the remotecontroller 40 can also be supplied with a number of user-activatedcategory preference icon keys, e.g., movies, sports, or children'sprogramming. The system can be adapted to present to the user only thoseprograms meeting particular preference category when it is activated bythe user. As with the Channel Preference icons, the microcontroller maydisplay the icon corresponding to the activated preference category toremind the user of the currently activated mode of system operation.

The question mark icon 162 at the far right of the third horizontal barin the menu of FIG. 16 identifies a program guide system “Help” mode inwhich information explaining the operation of the system is displayedfor the user. Again, by manipulating the cursor using the appropriatekeys on the remote controller, the user can select this mode. Onceselected, the next submenu appearing in the Help mode asks the user toidentify the particular portion of the system about which the user wouldlike to view Help information.

The icons appearing in the last horizontal bar of the MENU mode identifycertain interactive and/or other types of information services which theprogramming system, acting as a gateway, makes available to the user asshown in FIG. 17. By manipulating the cursor, the user can select anyone of the identified services, as shown in FIGS. 31-35.

For example, if the user initially selects the “X*PRESS” icon appearingin the last horizontal bar, he is presented with a submenu such as thatshown in FIG. 31. Using the direction arrow and enter keys on the remotecontroller, the user selects one of the three entries appearing in thedisplay of FIG. 31. Once a particular entry is selected, the electronicprogram guide connects the user to the selected service and passescontrol to the particular service application software, as shown inFIGS. 32-35.

Alternatively, the remote controller 40 can be supplied with a pluralityof content-specific keys corresponding to a plurality ofcontent-specific categories of programming, e.g., a Sports key, Newskey, Movie key, etc. When the user depresses a content-specific key, acontent-specific mode is initiated. In FIG. 4, the remote controller isequipped with a Sports key 49. If the user depresses the Sports key 49,the microcontroller will limit the display of programs and/or programschedule information to those that are sports-related. Themicrocontroller will block all other programming or schedule informationfrom appearing on the television receiver. The microcontroller can beadapted to distinguish programs and schedule information that aresports-related by examining an appropriate code associated with theprogram or schedule information.

As discussed above, coding can be accomplished using any number ofmethods, such as by including an appropriate code in the verticalblanking interval of the program signal, or in an appropriate memorylocation in the database record of the program schedule information, orif the schedule information is being received on a broadband network, byincluding it in an appropriate blanking interval. The user activates acontent-specific mode by depressing the appropriate content-specific keyin any mode of operation of the electronic programming guide, includingthe aforedescribed FLIP, BROWSE or MAIN MENU modes, as well as when noschedule information is being displayed and only a program signal isvisible on the television receiver. Once a content-specific mode isrequested by the user, the microcontroller immediately and directlyenables the content-specific programming criteria, and maintains it forall operating modes of the guide until disabled, which can beaccomplished, for example, by toggling the Sports key 49.

Instead of a dedicated content-specific key, such as Sports key 49, thesystem may be configured with a single, generic content-specific key,which, when activated, would cause the microcontroller to display acontent-specific menu containing a list of all content-specificcategories available to the user. The user then could highlight aparticular category by manipulating the selection cursor using thedirection arrow keys on the remote controller and select it bydepressing the ENTER or OK key 44. As an alternative to using acontent-specific key on the remote controller, access to thecontent-specific menu can be effected by providing an appropriateidentifier in another menu screen of the electronic guide, such as inthe LOCATOR, SETUP or MAIN MENU screens.

In addition to blocking all non-selected content-specific programmingwhen a particular content-specific category has been selected, themicrocontroller can be programmed to enable all added-value programmingor services that are specially related to the selected content-specificcategory. For example, if the user activates a Sports content-specificmode, the microcontroller, in addition to allowing only sportsprogramming or schedule information related to sports programming to bedisplayed, will proactively seek out and enable all sports relatedadded-value services, such as related trivia or video games, up-to-datescores while a game is in progress, team schedules, replays of priorgames of the selected teams or players, ticket or souvenir purchasing,etc. Thus, the information available from the programming or service canbe integrated into the environment of the electronic program guide.Rather than simply passing control to another service as describedabove, in this manner the electronic program guide would function as asystem integrator or interface to combine the available added-valueinformation into a package within the electronic guide environment, thusessentially creating a series of modular electronic program applicationscorresponding to a variety of available content-specific categories.

The Setup screen shown in FIG. 40 also includes a Text Location category275, which contains the textual entries “Bottom of Screen” and “Top ofScreen.” By navigating to the Text Location category 275 using the upand down direction keys 43A on the remote controller 40, and to eitherthe “Top” or “Bottom” entries in that category using the left and rightdirection keys 43B on the remote controller, and then depressing theenter or select key 44, the user can control the position of the overlaywindows used to display information in various operating modes of theelectronic program guide. The Setup screen of FIG. 40 provides the userwith two positional choices: the top or bottom of the screen. Dependingon the modes of operation of the program guide, it may be desirable toprovide the user with more positional choices in viewing area of thetelevision receiver, or to provide the user with the ability to choose adifferent position for information displayed different operating modes.

One of the novel features of the disclosed invention is the textfitsystem. The preferred embodiment of the text fit system includes aninteractive computer program used to edit the program listings databefore it is transmitted to the user and stored in memory. Theinteractive system operates as follows: unedited (or partially edited)program listings information is loaded into data a processor. The dataincludes program titles, program schedule times, duration, category, aswell as additional descriptive information dependent on the type ofprogram. For example, for movies the data includes the MPAA rating, yearof the movie, whether it is in black and white, and a list of starringactors and actresses.

The data processor extracts only the program title data which includestelevision program titles as well as movie titles, sporting events andtitles for other special events. Based on the duration of the program,the data processor first analyzes the listings data to determine whatgrid size listings are needed for each title. Thus, a two hour moviecould require four different edited titles to fit into each of the fourdifferent size grid cells (30, 60, 90, 120 minutes). The data processorthen determines how much space is required to display the title based onits character length. If the title is to be displayed in the programschedule grid using a proportional font and character to characterkerning, the data processor may also account for these factors indetermining the space required to display a title. The determinationwould than be based on the number of pixels required for the particularcombination of characters in the title. The amount of space availablefor display of a title depends on the size of the grid cell and thespace required for display of icons, when activated.

If the data processor determines that a full title requires too muchspace to fit into one or more grid cells, the title is then presented tothe editor using a suitable display device connected to the dataprocessor, such as a CRT. The editor is then queried to alter the titleso that it will fit in the allotted space. If the title must be editedfor more than one cell size, the editor is queried to edit each of theseseparately. In the preferred embodiment of the interactive program, theeditor is shown in real time whether the edited title will fit in thedesignated grid cell.

In the preferred embodiment, two lines of text are displayed in eachgrid cell of the program listings. The title, as edited, appears on thefirst line, and if necessary, continues onto the second line. Thedecision to wrap-around to the second line is based on whether naturalbreaks exist in the title such as spaces between words, commas, periods,hyphens, etc. These are standard techniques used in word processingsoftware routines. The editor may also be queried to edit a title in thesituation where the full title will fit on the allotted two lines, but ahyphen is required because there are no natural breaks in the title.

Prior to querying the editor to shorten a title, the data processorcompares the title with a stored library of shortened titles todetermine if the title had previously been shortened while editinganother listings database. Each time changes are made by the editor to atitle, the shortened title is added to the library. It is apparent thatthis process of building a library of shortened titles greatly reducesthe manual input required.

A flow chart illustrating the process by which the text fit systemoperates is shown in FIG. 42. The chart illustrates the operation ofediting a listing for display in a program grid for a single platform,but operation is the same for all platforms.

Text editing may be necessary in other situations besides that wheremultiple size grid cells are used for display of the same title. Forexample, the disclosed program guide may run on several differentplatforms, with each one having different constraints and grid cellspace availability. Some may not display the text in proportional fontsand some may have other limitations reducing the available space. Thus,in the preferred embodiment the interactive program would request editsfor all platforms for which they required at the same time. In addition,editing of text may be required for display modes other than a grid ofprogram listings. For example, in the “Listings by Channel” display ofFIG. 20, programs are listed on an entire, fixed-length line, but thelength of the line may vary from platform to platform, so that the textfit system may be employed for the purpose of editing listings for thedifferent platforms in this display mode as well. The space availablefor the display of text will also depend on how much space is reservedfor icon display. The same process as that shown in FIG. 42 would apply,except that there would be no need to determine what grid sizes areneeded because a fixed length line is used for display rather thanmultiple sized grid cells.

It will be apparent to those of skill in the art that the disclosed textfit system has applications beyond that of title editing alone. Thesystem may be easily modified to provide editing of messages, “i” screenstorylines, pay-per-view promotional copy, and similar text messages sothat they will fit into the designated space available for display ofthe text. In fact, the system may be used to edit any text for displayin the disclosed program schedule system.

The computer program for the microcontroller 16 may also include aschedule for the display of varying background views upon which theprogram schedule information is overlaid either partially or in a fullscreen display. The background views may be stored as bit maps in memoryor in another storage medium, such as an optical storage device. Forexample, the microcontroller 16 may be programmed to issue a command tothe VDG every morning at 6:00 AM to display a sunrise in the background.The background may then be changed accordingly throughout the day to,for example, a blue sky or a nighttime view as shown in FIG. 43A. Italso may vary, e.g., by time of day, day of week, month, year or season,as in the autumn scene shown FIG. 43B. The mood background also couldchange depending on the particular category of programming that the useris watching or to which selected schedule information pertains. The moodbackground also may be adapted to display scenes that reflect theparticular viewing area in which the user is situated, like the RockyMountains, or Mt. Rainier, etc. It also may be possible to displaystandard scenes, such as an ocean or forest scene. Moreover, the audiobackground also could be adjusted to relate to the particular moodbackground then being displayed. In addition, different background viewsmay be used for holidays and special events, such as Christmas, Fourthof July, Superbowl Sunday, etc. The purpose of the background views isto help ease the monotony of viewing program listings. Themicrocontroller 16 could be adapted automatically to coordinate thedisplay of the mood background. The user also could be given the abilityto choose from among various mood background displays by adapting themicrocontroller to display an appropriate mood option menu that liststhe mood background options available to the user and allows the user toselect one or more by manipulating the selection cursor. Access to sucha mood option menu could be achieved by supplying an appropriateidentifier, textual or visual, in an appropriate menu of the system,such as the LOCATOR or SETUP screen.

Additionally, the electronic program guide could be configured to storea unique digital identifier for each program along with its scheduleinformation and later use the identifier—e.g., by transmitting it—toindicate to a recording or storage device, such as a video recorder,that the user wishes to record the program. The program guide could alsouse the identifier to automatically control operation of the videorecorder. The electronic program guide could also be configured to useother stored schedule information for this purpose.

The form and content of a particular computer program to implement theinvention disclosed herein will be readily apparent to those skilled inthe art of video system programming and graphic display. A flow chartshowing the operation logic of the system is shown in FIGS. 36A-D. Itwill also be appreciated by those skilled in the art that there can bedeparture from the specific embodiment of the invention described hereinwithout departing from the true scope of the claims appended hereto.

We claim:
 1. A method for allowing a user to create a new channel-tuningsequence for television channels in which at least some of thetelevision channels are re-ordered out of their normal tuning sequencecomprising: displaying on-screen information identifying a plurality oftelevision channels; grouping the information identifying the televisionchannels according to criteria; displaying the on-screen informationidentifying the television channels in a two-dimensional array;displaying the critera along one dimension of the array and displayingthe television channels associated with each of the criteria along asecond dimension of the array, wherein the second dimension isperpendicular to the first dimension; allowing a user to sequentiallyselect channels from the identified television channels in a givenorder; building the new channel-tuning sequence by adding the selectedchannels to the new channel-tuning sequence one after another in thegiven order, wherein in the given order at least some of the channelsare out of their normal tuning sequence; and using the newchannel-tuning sequence to control the order in which the user tunes totelevision channels.
 2. A method for displaying on-screen informationfor a user with an interactive television program guide, comprising:displaying on-screen information identifying a plurality of televisionchannels in a group, wherein the interactive television program guideselects the plurality of television channels from available televisionchannels and each of the plurality of television channels is selectedbased on if that television channel is a premium television channel;allowing the user to select the displayed information for a given one ofthe premium television channels; and tuning to the given channel inresponse to the selection of the displayed information.
 3. The methoddefined in claim 2 further comprising: displaying on-screen informationidentifying a plurality of channels; allowing a user to sequentiallyselect channels from the identified channels in a given order; andbuilding one of the plurality of user-specified channel sequences byadding the selected channels to the one of the plurality ofuser-specified channel sequences one after another in a given order. 4.The method of claim 3 further comprising removing a specific channelfrom the one of the plurality of user-specified channel sequences byselecting the specific channel from the identified channels.
 5. Themethod of claim 3 further comprising allowing the user to sequentiallyselect channels from the identified channels with a remote control. 6.The method of claim 3 further comprising displaying the on-screeninformation on a television.
 7. The method of claim 3 further comprisinggrouping the information identifying the channels according to criteria.8. A method for allowing a user to create plurality of user-specifiedchannel sequences, comprising: allowing a user to create the pluralityof user-specified channel sequences from all available channels;displaying on-screen information identifying a plurality of channels;grouping the information identifying the channels according to thesource of the program information appearing on the channels; allowing auser to sequentially select channels from the identified channels in auser-specified order; building one of the plurality of user-specifiedchannel sequences by adding the selected channels to the one of theplurality of user-specified channel sequences one after another in auser-specified order; and using a selected one of the plurality ofuser-specified channel sequences to control the order in which the usertunes to channels.
 9. The method of claim 8 wherein there are multiplesources selected from the group consisting of broadcast, cable, andsatellite, the method further comprising grouping the informationidentifying the channels separately according to the source of theprogram information appearing on the channels.
 10. A method for allowinga user to create a plurality of user-specified channel sequences,comprising: allowing a user to create the plurality of user-specifiedchannel sequences from all available channels; displaying on-screeninformation identifying a plurality of channels; grouping theinformation identifying the channels according to criteria; displayingthe on-screen information identifying the channels in a two-dimensionalarray; displaying the criteria along one dimension of the array anddisplaying the channels associated with each of the criteria along asecond dimension of the array, wherein the second dimension isperpendicular to the first dimension; allowing a user to squentiallyselect channels from the identified channels in a user-specified order;building one of the plurality of user-specified channel sequences byadding the selected channels to the one of the plurality ofuser-specified channel sequences one after another in a user-specifiedorder; and using a selected one of the plurality of user-specifiedchannel sequences to control the order in which the user tunes tochannels.